package com.millstein.tsinglog.commons.enums;

import lombok.Getter;
import lombok.NoArgsConstructor;

/**
 * 操作结果的枚举类
 * @author Administrator
 *
 */
@Getter
@NoArgsConstructor
public enum ResultCode {

	// 操作成功
	SUCCESS(1, "成功"),

	// 操作失败
	// 1.参数相关(1001~1999)
	PARAM_IS_INVALID(1001,"参数无效"),
	PARAM_IS_BLANK(1002,"参数为空"),
	PARAM_TYPE_BIND_ERROR(1003, "参数类型有误"),
	PARAM_NOT_COMPLETE(1004, "参数缺失"),

	// 2.逻辑相关(2001~2999)
	RETURN_DATA_NOT_FOUND(2001, "没有查询到相关内容"),
	HANDLE_DATA_NOT_EXISTED(2002, "没有需要操作的数据"),
	EXISTS_SAME_TAG(2101, "已经存在同名的标签，请修改名称后再提交"),
	EXISTS_SAME_CATEGORY(2102, "已经存在同名的分类，请修改名称后再提交"),
	ARTICLE_STATUS_ERROR(2201, "文章状态有误"),
	DO_NOT_EXIST_SUCH_METHOD(2202, "不存在该方法"),
	EXIST_USER_BELONG_ROLE(2301, "仍然存在用户属于该角色，不能进行相应的操作"),
	EXIST_ROLE_NAME(2302, "角色名已存在，请修改后再提交"),
	EXIST_USER_NAME(2303, "用户名已存在，请修改后再提交"),

	// 3.操作相关(3001~3999)
	INSERT_FAILURE(3001,"新增失败"),
	UPDATE_FAILURE(3002,"更新失败"),
	DELETE_FAILURE(3003,"删除失败"),
	UPLOAD_FAILURE(3004, "上传失败"),
	ASSIGN_PERMISSION_FAILURE(3005, "分配权限失败"),
	LOG_SAVE_FAILURE(3006, "日志保存失败"),
	LARGER_THAN_MAX_COUNT_OF_USABLE_NOTICE(3101, "该类型的公告的启用数量已经超过最大值，无法启用"),
	PORTAL_OPERATION_OCCURS_ERROR(3201, "支持失败，可能是服务器划水了"),
	DO_SUPPORT_TOO_OFTEN(3202, "一小时内只能赞一次哦~~"),
	DO_OPPOSE_TOO_OFTEN(3203, "一小时内只能踩一次哦~~"),
	INSERT_BROWSE_COUNT_ERROR(3204, "增加浏览数失败"),
	DO_PREFER_ARTICLE_TOO_OFTEN(3205, "感谢支持，但是一小时内也只能支持一次哦~~"),
	INSERT_PREFER_COUNT_ERROR(3206, "增加喜欢数失败"),
	INSERT_COMMENT_ERROR(3207, "评论失败，可能是服务器划水了"),
	SUBMIT_COMMENT_TOO_OFTEN(3208, "别激动，一分钟内只能评论一次哦~"),
	SUBMIT_GUEST_BOOK_TOO_OFTEN(3209, "别激动，一分钟内只能留言一次哦~"),

	// 4.用户相关(4001~4999)
	IS_NOT_PHONE_NUMBER(4001, "手机号码校验失败"),
	EXPIRED_VERIFY_CODE(4002, "验证码超时"),
	INCORRECT_VERIFY_CODE(4003, "验证码错误"),
	INCORRECT_USERNAME_OR_PASSWORD(4101, "用户名或密码有误"),
	INCORRECT_OLD_PASSWORD(4102, "原密码有误"),
	TOO_MANY_RETRY_FOR_PASSWORD(4103, "该账户密码重试次数过多已被锁定，一小时之内不能被登录"),
	ACCOUNT_HAS_BEEN_LOCKED(4104, "该账户已被锁，请联系管理员"),
	NOT_LOG_IN(4105, "您还未登录"),
	DO_NOT_HAVE_THIS_PERMISSION(4201, "您没有权限进行此项操作"),

	// 5.上传相关(5001~5100)
	INVALID_FILE_TYPE(5001, "非法文件类型"),
	INVALID_FILE_CONTENT(5002, "非法文件内容"),
	FILE_TOO_BIG(5003, "上传大小超过了限制"),
	CONTENT_VALID_FAILURE(5004, "内容校验失败"),
	COMPRESS_FAILURE(5005, "图片压缩失败"),

	// 6.其他(9999)
	SERVER_OCCURS_ERROR(9999, "系统内部发生异常")
	;

	private int code; // 状态码
    private String message; // 操作信息

	private ResultCode(int code, String message) {
		this.code = code;
		this.message = message;
	}

}
